'''
1.其他数据类型当成布尔值处理的原则是什么(2分)？

True: 0真

False: 1 假

2.写出if语句的完整语法（3分）？

    if 条件表达式:
    	条件满足执行代码块
    elif 条件表达式:
    	条件满足执行代码块
    else:
         以上条件都不满足执行代码块

3.写出for的完整语法结构（2分）？

    for 临时变量 in 可迭代变量:
        遍历体
        获取这个临时变量



for循环适用于哪些数据类型（1分）？

    tuple, list, dict, str, set



以及描述for循环语法的执行过程（2分）？

    每一次循环,会依次提取可迭代对象的数据赋值给临时变量,直到把可迭代变量的元素遍历完

4.为什么要使用拆包（1分）？请写出代码简述什么是拆包（4分）？

     因为需要用函数调用容器中的关键字
     拆包就是函数调用时将容器拆分为多个参数

5.函数的定义以及调用的语法（定义2分 调用1分）？

    减少冗余代码,提高代码的可维护性
    def 函数名():
        功能代码块(函数体)



6.python的概念是什么？（2分）

是一门面向对象的解释型的编程语言

7.写出如何获取字典中指定的键对应的值（4分 一个2分）

    dict1 = {key:value}
    dict.keys() 获取所有key的值
    dict.values() 获取所有value的值
    dict.items() 获取字典所有key和value的值




8.有一个列表li=[0,1,2,3,4,5,6,7,8,9,10] 如何通过切片得到 [9,7,5,3]？（2分）

    print(li[-1::-2])  # 9,7,5,3,1

9.面向对象的三大特征是什么（3分）

封装继承多态

10.请尽可能的详细的描述你对于python面向对象的掌握情况(前两天的知识)，包括概念和语法(写详细,可以以案例的方式)。（40分）

11.什么是重写？重写后如何调用父类上的方法？（2分）

    子类重写(覆盖)父类属性和方法
    说明：子类和父类有同名的方法这种情况

    class Person:
        def __init__(self):
            self.name = '人类'
            self.age = 100

        def eat(self):
            print('人类eat')


    # 学生类
    class Student(Person):
        def __init__(self):
            self.name = '学生'
            self.age = 10

        def eat(self):
            print('学生eat')


    s1 = Student()
    print(s1.name)
    print(s1.age)
    s1.eat()

    s2 = Person()
    print(s2.name)
    print(s2.age)
    s2.eat()

12.请写出异常捕获的完整语法（4分）

    语法：
    try:
    可能发生异常的代码
    except 异常类型:
    捕获到异常执行的代码块

    try:
        可能发生异常的代码
    except (异常类型1， 异常类型2， ...):
        捕获到异常执行的代码块

13.请写出模块和包的导入方式（6分）

import 模块名

from 模块名 import *



 import  包名.模块

from 包[.包.n] import *

14.什么是pip，pip的常用的命令有哪些？（4分）

15.什么是单例模式（2分）
__new__
作用:创建对象并且返回对象
触发:创建对象时

16.使用列表推导式得到1-50之间能被3整除的所有的数字的列表（4分）
# list1 = []
# for i in range(1, 51):
#     if i % 3 == 0:
#         list1.append(i)
# print(list1)

list1 = []
i = 1
while i < 50:
    i += 1
    if i % 3 == 0:
        list1.append(i)
print(list1)

17.什么是魔法方法，常见的魔法方法有哪些，分别的调用时机是什么（4分）

魔法方法就是魔术方法,是python内置具有特殊功能的方法

有如下两张表，查询每个学生的平均成绩。要求显示的列有：学生姓名和平均成绩（5分）
select avg`grade`,`name` from `student` join 'score' using(`id`).
'''
